package com.hdjk.view.entity;

import android.text.TextUtils;

import com.lst.projectlib.entity.BaseEntity;

import java.util.List;

/**
 * Created by sxy on 2017/11/2.
 */

public class FundEntity extends BaseEntity {
    //累计净值，精确到4位小数，如1.0001
    private String accumulateNav;
    //购买确认天数（工作日），即T+N确认里的N
    private String buyConfirmLag;
    //收费模式
    private String chargeMode;
    //币种，目前仅支持人民币购买，固定值=156
    private String currency;
    //托管费率，单位1%，精确到2位小数，如0.35，即0.35%
    private String custodianFee;
    //日涨幅。精确到2位小数，单位1，如1.01=1.01%
    private String day1Performance;
    //默认分红方式。0=红利再投，1=现金分红
    private String defaultDividendInstruction;
    //分红方式是否可以修改。0=允许修改，1=不允许修改
    private String dividendUpdateEnable;
    //货币型基金的最新万份收益。精确到4位小数，如1.0001
    private String earningsPer10000;
    //基金代码
    private String fundCode;
    //托管银行
    private String fundCustodian;
    //基金全称
    private String fundFullName;
    //基金公司名称
    private String fundHouse;
    //基金公司代码
    private String fundHouseCode;
    //基金经理列表
    private List<FundManagerEntity> fundManagers;
    //基金简称
    private String fundName;
    //基金最新规模，单位为亿
    private String fundSize;
    //最新规模日期
    private String fundSizeDate;
    //基金状态。0=募集期基金；1=申购期基金；2=封闭期基金；3=已清盘的基金。该接口不返回其他状态的基金
    private String fundStatus;
    //基金类型代码。MM：货币型；BOND：债券型；MIXED：混合型；CP：保本型；EQ：股票型；AI：另类型；INDEX：指数型；ST：分级型；UNKNOWN：其他
    private String fundType;
    //地理属性
    private String geographicalSector;
    //基金的投资目标
    private String investmentObjective;
    //基金的投资范围
    private String investmentScope;
    //基金的投资策略
    private String investmentStrategy;
    //募集期基金的结束募集日期
    private String ipoEndDate;
    //募集期基金的开始募集日期
    private String ipoStartDate;
    //是否可以购买。0=可以购买，1=不能购买
    private String isBuyEnable;
    //是否是货币型基金。0=货币型基金，1=非货币型基金
    private String isMMFund;
    //是否是QDII基金。0=QDII，1=非QDII
    private String isQDII;
    //是否是奕丰推荐基金。0=奕丰推荐基金，1=非奕丰推荐基金
    private String isRecommended;
    //是否可以定投。0=可以定投，1=不能定投
    private String isRspEnable;
    //是否可以赎回。0=可以赎回，1=不能赎回
    private String isSellEnable;
    //是否可以转换。0=可以转换，1=不能转换
    private String isSwitchEnable;
    //基金成立日期
    private String launchDate;
    //基金发行价格
    private String launchPrice;
    //基金发行规模，单位为亿
    private String launchSize;
    //管理费率，单位1%，精确到2位小数，如0.35，即0.35%
    private String managementFee;
    //最高购买金额。精确到2位小数，单位为元
    private String maxBuyAmount;
    //最高定认购金额。精确到2位小数，单位为元
    private String maxIpoAmount;
    //最高定投金额。精确到2位小数，单位为元
    private String maxRspAmount;
    //首次购买最低金额。精确到2位小数，单位为元
    private String minInitialBuyAmount;
    //首次认购最低金额。精确到2位小数，单位为元
    private String minInitialIpoAmount;
    //最低赎回份额。精确到2位小数，单位为份
    private String minRedemptionUnit;
    //最低持有份额。精确到2位小数，单位为份
    private String minRetainUnit;
    //最低定投金额。精确到2位小数，单位为元
    private String minRspAmount;
    //追加购买最低金额。精确到2位小数，单位为元
    private String minSubseqBuyAmout;
    //认购追加购买最低金额。精确到2位小数，单位为元
    private String minSubseqIpoAmout;
    //近1个月的收益
    private String month1;
    //近3个月的收益
    private String month3;
    //近6个月的收益
    private String month6;
    //最新净值，精确到4位小数，如1.0001
    private String nav;
    //最新净值日期
    private String navDate;
    //赎回到账天数（工作日），即T+N清算到账。此为预算值，实际到账应以银行实际到账为准。
    private String redemptionSettleLag;
    //基金的风险收益特征
    private String riskDisclosure;
    //基金的风险等级。1=低风险；2=中低风险；3=中风险；4=中高风险；5=高风险
    private String riskRate;
    //货币型基金的七日年化收益。精确到4位小数，单位为1，如2.5001=2.5001%
    private String sevenDaysAnnualizedYield;
    //成立以来的收益
    private String sinceLaunch;
    //行业属性
    private String specializeSector;
    //近1年的收益
    private String year1;
    //近3年的收益
    private String year3;
    //近5年的收益
    private String year5;

    public void setAccumulateNav(String accumulateNav) {
        this.accumulateNav = accumulateNav;
    }

    public String getAccumulateNav() {
        return this.accumulateNav;
    }

    public void setBuyConfirmLag(String buyConfirmLag) {
        this.buyConfirmLag = buyConfirmLag;
    }

    public String getBuyConfirmLag() {
        return this.buyConfirmLag;
    }

    public void setChargeMode(String chargeMode) {
        this.chargeMode = chargeMode;
    }

    public String getChargeMode() {
        return this.chargeMode;
    }

    public void setCurrency(String currency) {
        this.currency = currency;
    }

    public String getCurrency() {
        return this.currency;
    }

    public void setCustodianFee(String custodianFee) {
        this.custodianFee = custodianFee;
    }

    public String getCustodianFee() {
        return this.custodianFee;
    }

    public void setDay1Performance(String day1Performance) {
        this.day1Performance = day1Performance;
    }

    public String getDay1Performance() {
        return this.day1Performance;
    }

    public void setDefaultDividendInstruction(String defaultDividendInstruction) {
        this.defaultDividendInstruction = defaultDividendInstruction;
    }

    public String getDefaultDividendInstruction() {
        return this.defaultDividendInstruction;
    }

    public void setDividendUpdateEnable(String dividendUpdateEnable) {
        this.dividendUpdateEnable = dividendUpdateEnable;
    }

    public String getDividendUpdateEnable() {
        return this.dividendUpdateEnable;
    }

    public void setEarningsPer10000(String earningsPer10000) {
        this.earningsPer10000 = earningsPer10000;
    }

    public String getEarningsPer10000() {
        return this.earningsPer10000;
    }

    public void setFundCode(String fundCode) {
        this.fundCode = fundCode;
    }

    public String getFundCode() {
        return this.fundCode;
    }

    public void setFundCustodian(String fundCustodian) {
        this.fundCustodian = fundCustodian;
    }

    public String getFundCustodian() {
        return this.fundCustodian;
    }

    public void setFundFullName(String fundFullName) {
        this.fundFullName = fundFullName;
    }

    public String getFundFullName() {
        return this.fundFullName;
    }

    public void setFundHouse(String fundHouse) {
        this.fundHouse = fundHouse;
    }

    public String getFundHouse() {
        return this.fundHouse;
    }

    public void setFundHouseCode(String fundHouseCode) {
        this.fundHouseCode = fundHouseCode;
    }

    public String getFundHouseCode() {
        return this.fundHouseCode;
    }

    public void setFundManagers(List<FundManagerEntity> fundManagers) {
        this.fundManagers = fundManagers;
    }

    public List<FundManagerEntity> getFundManagers() {
        return this.fundManagers;
    }

    public void setFundName(String fundName) {
        this.fundName = fundName;
    }

    public String getFundName() {
        return this.fundName;
    }

    public void setFundSize(String fundSize) {
        this.fundSize = fundSize;
    }

    public String getFundSize() {
        return this.fundSize;
    }

    public void setFundSizeDate(String fundSizeDate) {
        this.fundSizeDate = fundSizeDate;
    }

    public String getFundSizeDate() {
        return this.fundSizeDate;
    }

    public void setFundStatus(String fundStatus) {
        this.fundStatus = fundStatus;
    }
    public String getFundStatus() {
        return this.fundStatus;
    }
    public String getFundStatusName() {
        String state = "";
        if (!TextUtils.isEmpty(fundStatus)) {
            if ("0".equals(fundStatus))
                state = "募集期基金";
            if ("1".equals(fundStatus))
                state = "申购期基金";
            if ("2".equals(fundStatus))
                state = "封闭期基金";
            if ("3".equals(fundStatus))
                state = "已清盘的基金";
        }
        return state;
    }

    public void setFundType(String fundType) {
        this.fundType = fundType;
    }

    public String getFundType() {
        return fundType;
    }

    public String getFundTypeName() {
        String type = "";
        if (!TextUtils.isEmpty(fundType)) {
            if ("MM".equals(fundType))
                type = "货币型";
            if ("BOND".equals(fundType))
                type = "债券型";
            if ("MIXED".equals(fundType))
                type = "混合型";
            if ("CP".equals(fundType))
                type = "保本型";
            if ("EQ".equals(fundType))
                type = "股票型";
            if ("AI".equals(fundType))
                type = "另类型";
            if ("INDEX".equals(fundType))
                type = "指数型";
            if ("ST".equals(fundType))
                type = "分级型";
            if ("UNKNOWN".equals(fundType))
                type = "其他";
        }
        return type;
    }

    public void setGeographicalSector(String geographicalSector) {
        this.geographicalSector = geographicalSector;
    }

    public String getGeographicalSector() {
        return this.geographicalSector;
    }

    public void setInvestmentObjective(String investmentObjective) {
        this.investmentObjective = investmentObjective;
    }

    public String getInvestmentObjective() {
        return this.investmentObjective;
    }

    public void setInvestmentScope(String investmentScope) {
        this.investmentScope = investmentScope;
    }

    public String getInvestmentScope() {
        return this.investmentScope;
    }

    public void setInvestmentStrategy(String investmentStrategy) {
        this.investmentStrategy = investmentStrategy;
    }

    public String getInvestmentStrategy() {
        return this.investmentStrategy;
    }

    public void setIpoEndDate(String ipoEndDate) {
        this.ipoEndDate = ipoEndDate;
    }

    public String getIpoEndDate() {
        return this.ipoEndDate;
    }

    public void setIpoStartDate(String ipoStartDate) {
        this.ipoStartDate = ipoStartDate;
    }

    public String getIpoStartDate() {
        return this.ipoStartDate;
    }

    public void setIsBuyEnable(String isBuyEnable) {
        this.isBuyEnable = isBuyEnable;
    }

    public String getIsBuyEnable() {
        return this.isBuyEnable;
    }

    public void setIsMMFund(String isMMFund) {
        this.isMMFund = isMMFund;
    }

    public String getIsMMFund() {
        return this.isMMFund;
    }

    public void setIsQDII(String isQDII) {
        this.isQDII = isQDII;
    }

    public String getIsQDII() {
        return this.isQDII;
    }

    public void setIsRecommended(String isRecommended) {
        this.isRecommended = isRecommended;
    }

    public String getIsRecommended() {
        return this.isRecommended;
    }

    public void setIsRspEnable(String isRspEnable) {
        this.isRspEnable = isRspEnable;
    }

    public String getIsRspEnable() {
        return this.isRspEnable;
    }

    public void setIsSellEnable(String isSellEnable) {
        this.isSellEnable = isSellEnable;
    }

    public String getIsSellEnable() {
        return this.isSellEnable;
    }

    public void setIsSwitchEnable(String isSwitchEnable) {
        this.isSwitchEnable = isSwitchEnable;
    }

    public String getIsSwitchEnable() {
        return this.isSwitchEnable;
    }

    public void setLaunchDate(String launchDate) {
        this.launchDate = launchDate;
    }

    public String getLaunchDate() {
        return this.launchDate;
    }

    public void setLaunchPrice(String launchPrice) {
        this.launchPrice = launchPrice;
    }

    public String getLaunchPrice() {
        return this.launchPrice;
    }

    public void setLaunchSize(String launchSize) {
        this.launchSize = launchSize;
    }

    public String getLaunchSize() {
        return this.launchSize;
    }

    public void setManagementFee(String managementFee) {
        this.managementFee = managementFee;
    }

    public String getManagementFee() {
        return this.managementFee;
    }

    public void setMaxBuyAmount(String maxBuyAmount) {
        this.maxBuyAmount = maxBuyAmount;
    }

    public String getMaxBuyAmount() {
        return this.maxBuyAmount;
    }

    public void setMaxIpoAmount(String maxIpoAmount) {
        this.maxIpoAmount = maxIpoAmount;
    }

    public String getMaxIpoAmount() {
        return this.maxIpoAmount;
    }

    public void setMaxRspAmount(String maxRspAmount) {
        this.maxRspAmount = maxRspAmount;
    }

    public String getMaxRspAmount() {
        return this.maxRspAmount;
    }

    public void setMinInitialBuyAmount(String minInitialBuyAmount) {
        this.minInitialBuyAmount = minInitialBuyAmount;
    }

    public String getMinInitialBuyAmount() {
        return this.minInitialBuyAmount;
    }

    public void setMinInitialIpoAmount(String minInitialIpoAmount) {
        this.minInitialIpoAmount = minInitialIpoAmount;
    }

    public String getMinInitialIpoAmount() {
        return this.minInitialIpoAmount;
    }

    public void setMinRedemptionUnit(String minRedemptionUnit) {
        this.minRedemptionUnit = minRedemptionUnit;
    }

    public String getMinRedemptionUnit() {
        return this.minRedemptionUnit;
    }

    public void setMinRetainUnit(String minRetainUnit) {
        this.minRetainUnit = minRetainUnit;
    }

    public String getMinRetainUnit() {
        return this.minRetainUnit;
    }

    public void setMinRspAmount(String minRspAmount) {
        this.minRspAmount = minRspAmount;
    }

    public String getMinRspAmount() {
        return this.minRspAmount;
    }

    public void setMinSubseqBuyAmout(String minSubseqBuyAmout) {
        this.minSubseqBuyAmout = minSubseqBuyAmout;
    }

    public String getMinSubseqBuyAmout() {
        return this.minSubseqBuyAmout;
    }

    public void setMinSubseqIpoAmout(String minSubseqIpoAmout) {
        this.minSubseqIpoAmout = minSubseqIpoAmout;
    }

    public String getMinSubseqIpoAmout() {
        return this.minSubseqIpoAmout;
    }

    public void setMonth1(String month1) {
        this.month1 = month1;
    }

    public String getMonth1() {
        return this.month1;
    }

    public void setMonth3(String month3) {
        this.month3 = month3;
    }

    public String getMonth3() {
        return this.month3;
    }

    public void setMonth6(String month6) {
        this.month6 = month6;
    }

    public String getMonth6() {
        return this.month6;
    }

    public void setNav(String nav) {
        this.nav = nav;
    }

    public String getNav() {
        return this.nav;
    }

    public void setNavDate(String navDate) {
        this.navDate = navDate;
    }

    public String getNavDate() {
        return this.navDate;
    }

    public void setRedemptionSettleLag(String redemptionSettleLag) {
        this.redemptionSettleLag = redemptionSettleLag;
    }

    public String getRedemptionSettleLag() {
        return this.redemptionSettleLag;
    }

    public void setRiskDisclosure(String riskDisclosure) {
        this.riskDisclosure = riskDisclosure;
    }

    public String getRiskDisclosure() {
        return this.riskDisclosure;
    }

    public void setRiskRate(String riskRate) {
        this.riskRate = riskRate;
    }
    public String getRiskRate() {
        return this.riskRate;
    }
    public String getRiskRateName() {
        String risk = "";
        if (!TextUtils.isEmpty(riskRate)) {
            if ("1".equals(riskRate))
                risk = "低风险";
            if ("2".equals(riskRate))
                risk = "中低风险";
            if ("3".equals(riskRate))
                risk = "中风险";
            if ("4".equals(riskRate))
                risk = "中高风险";
            if ("5".equals(riskRate))
                risk = "高风险";
        }
        return risk;
    }

    public void setSevenDaysAnnualizedYield(String sevenDaysAnnualizedYield) {
        this.sevenDaysAnnualizedYield = sevenDaysAnnualizedYield;
    }

    public String getSevenDaysAnnualizedYield() {
        return this.sevenDaysAnnualizedYield;
    }

    public void setSinceLaunch(String sinceLaunch) {
        this.sinceLaunch = sinceLaunch;
    }

    public String getSinceLaunch() {
        return this.sinceLaunch;
    }

    public void setSpecializeSector(String specializeSector) {
        this.specializeSector = specializeSector;
    }

    public String getSpecializeSector() {
        return this.specializeSector;
    }

    public void setYear1(String year1) {
        this.year1 = year1;
    }

    public String getYear1() {
        return this.year1;
    }

    public void setYear3(String year3) {
        this.year3 = year3;
    }

    public String getYear3() {
        return this.year3;
    }

    public void setYear5(String year5) {
        this.year5 = year5;
    }

    public String getYear5() {
        return this.year5;
    }
}
